package collection;

import java.util.AbstractCollection;

/**
 * AbstractCollection抽象类
 * 实现Collection接口
 * 提供了collection的实现类应该具有的基本方法，具有一定的普适性
 *
 * AbstractCollection将其实现类分成两种，一种为只读集合，另一种为可修改集合
 *
 * 在只读集合中，只需要实现AbstractCollection中的iterator函数和size函数即可，
 * 其它的函数可以维持不变（在对性能没要求的前提下），这保证了实现类只需要少量的工作，便可以将集合的功能基本实现。
 *
 * 而对于可修改集合，AbstractCollection要求不仅需要实现其中的两个抽象方法，
 * 还需要实现add方法，并保证iterator函数返回的迭代器中实现了remove方法。
 *
 * 对于非抽象算法，AbstractCollection的建议为：如果有更加高效的实现方法，子类可以将其重写(override)
 *
 * */
public class AbstractCollectionDemo {

}
